From 34b05aad253978a699f149cced553918f71a181e Mon Sep 17 00:00:00 2001 From: "iap10@labyrinth.cl.cam.ac.uk" Date: Tue, 27 Apr 2004 15:34:25 +0000 Subject: [PATCH] bitkeeper revision 1.843.1.1 (408e7d81yryzADIp-4VdSvsB20fl9w) more shadow log dirty stuff. --- xen/common/memory.c | 6 ++++++ xen/net/dev.c | 5 ++++- 2 files changed, 10 insertions(+), 1 deletion(-) diff --git a/xen/common/memory.c b/xen/common/memory.c index 420eb1ea31..2e5ef18102 100644 --- a/xen/common/memory.c +++ b/xen/common/memory.c @@ -1060,6 +1060,12 @@ int do_mmu_update(mmu_update_t *ureqs, int count) machine_to_phys_mapping[pfn] = req.val; okay = 1; + + /* if in log dirty shadow mode, mark the corresponding + psuedo-physical page as dirty */ + if( unlikely(current->mm.shadow_mode == SHM_logdirty) ) + mark_dirty( ¤t->mm, pfn ); + put_page(&frame_table[pfn]); break; diff --git a/xen/net/dev.c b/xen/net/dev.c index 31d80e2a14..aefd3a0df1 100644 --- a/xen/net/dev.c +++ b/xen/net/dev.c @@ -555,8 +555,11 @@ void deliver_packet(struct sk_buff *skb, net_vif_t *vif) // avoid the fault later *sptr = new_pte; - unmap_domain_mem(sptr); + + if( p->mm.shadow_mode == SHM_logdirty ) + mark_dirty( &p->mm, new_page-frame_table ); + put_shadow_status(&p->mm); } -- 2.30.2